package com.hzw.saas.api.storage;

/**
 * @author zzl
 * @since 04/24/2021
 */
public interface ICatalogService {

    /**
     * 获取catalog对应的物理路径
     *
     * @param catalog 存储桶/虚拟目录
     * @return 物理路径
     */
    String getCatalogPath(String catalog);

    /**
     * 根据catalog获取文件存储物理路径
     *
     * @param catalog 存储桶/虚拟目录
     * @param fileKey  资源key
     * @return 文件路径
     */
    String getFilePath(String catalog, String fileKey);

    /**
     * 根据catalog获取文件存储父目录
     *
     * @param catalog 存储桶/虚拟目录
     * @param fileKey     资源Key
     * @return 文件父目录
     */
    String getFileSupPath(String catalog, String fileKey);

    /**
     * 根据catalog获取缓存存储物理路径
     *
     * @param catalog 存储桶/虚拟目录
     * @param fileKey  文件ID/资源key
     * @return 文件缓存父路径
     */
    String getCacheSupPath(String catalog, String fileKey);

}
